/**
 * 
 */
package com.question.thread;

/**
 * @data 2012-10-22 下午05:49:08
 * @author nassir wen
 * 
 * 说明：调用 sleep()方法并不会让线程释放它所持有的同步锁；而且在这期间它也不会阻碍其它线程的运行。上面的每个方
    法都声明抛出一个InterruptedException类型的异常，这是因为线程在sleep()期间，有可能被持有它的引用的
    其它线程调用它的interrupt()方法而中断。中断一个线程会导致一个InterruptedException异常的产生，如果
    你的程序不捕获这个异常，线程就会异常终止，进入TERMINATED状态，如果你的程序捕获了这个异常，那么
    程序就会继续执行catch语句块（可能还有finally语句块）以及以后的代码。
 */
public class InterruptTest {
    public static void main(String[] args) {
        Thread t = new Thread() {
            public void run() {
                try {
                    System.out.println("我被执行了-在sleep()方法前");
                    // 停止运行10分钟
                    Thread.sleep(1000 * 60 * 10);
                    System.out.println("我被执行了-在sleep()方法后");
                } catch (InterruptedException e) {
                    System.out.println("我被执行了-在catch语句块中");
                }
                System.out.println("我被执行了-在try{}语句块后");
            }
        };
        // 启动线程
        t.start();
        // 在sleep()结束前中断它
        t.interrupt();
    }
}
